<html>
<head><meta charset="utf-8"><title>pre-design meeting 2019-09-13 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html">pre-design meeting 2019-09-13</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="175607558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607558">(Sep 13 2019 at 09:29)</a>:</h4>
<p>Hey <span class="user-mention" data-user-id="133169">@matklad</span>, you around? So I had hoped to chat with you more in advance of proposed meeting today but .. yeah, life. Are you around at the moment? I have a bit of time. Anyway so we created <a href="https://hackmd.io/_ixQrAr5TKafV9m8eSU_VA" target="_blank" title="https://hackmd.io/_ixQrAr5TKafV9m8eSU_VA">this hackmd</a> capturing a lot of our thinking. It seems useful to try and put that before folks and ask them about. But what I'm wondering is... is there some central <em>question</em> we would prefer to extract? That doc obviously covers a lot of ground.</p>



<a name="175607575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607575">(Sep 13 2019 at 09:29)</a>:</h4>
<p>yep, I am around</p>



<a name="175607618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607618">(Sep 13 2019 at 09:30)</a>:</h4>
<p>rewriting our name resolution again :D</p>



<a name="175607653"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607653" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607653">(Sep 13 2019 at 09:30)</a>:</h4>
<p>So, the central question I think is "what are immediate action items?"</p>



<a name="175607697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607697">(Sep 13 2019 at 09:31)</a>:</h4>
<p>The hypothesis is that it's "complete library-ification of chalk and surrounding infra"</p>



<a name="175607706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607706">(Sep 13 2019 at 09:32)</a>:</h4>
<p>but it would be great to get more feedback on this</p>



<a name="175607785"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607785" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607785">(Sep 13 2019 at 09:33)</a>:</h4>
<p>Yeah so</p>



<a name="175607791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607791">(Sep 13 2019 at 09:33)</a>:</h4>
<p>I guess I think it depends a bit on your scope</p>



<a name="175607792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607792">(Sep 13 2019 at 09:33)</a>:</h4>
<p>Like, I feel we need a social/ideologial question, and not necessary a technical one: are we ready to do BIG CHANGES to make ide GO FAST?</p>



<a name="175607877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607877">(Sep 13 2019 at 09:34)</a>:</h4>
<p>I remember now that I had hoped to lay out some kind of chalk timeline, and I can try to edit the doc to at least give a <em>loose</em> one. I think my current thinking would be that this might be a good first step:</p>
<ul>
<li>use rust-analyzer as a testbed to push chalk to a working model<br>
    - it has already exposed some questions around lazy norm, for example<br>
    - and this will also require refining the interface between chalk and its environment</li>
</ul>



<a name="175607880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607880">(Sep 13 2019 at 09:35)</a>:</h4>
<p>cc <span class="user-mention" data-user-id="129457">@Florian Diebold</span> , I've seen you around</p>



<a name="175607952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607952">(Sep 13 2019 at 09:36)</a>:</h4>
<p>other steps, maybe part of that:</p>
<ul>
<li>try to extract a shared definition of types + unification</li>
</ul>



<a name="175607958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607958">(Sep 13 2019 at 09:36)</a>:</h4>
<p>I guess the point is, to sort of prototype the proposed libraries with rust-analyzer as first consumer</p>



<a name="175607963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607963">(Sep 13 2019 at 09:36)</a>:</h4>
<p>but keeping rustc in mind</p>



<a name="175607977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607977">(Sep 13 2019 at 09:36)</a>:</h4>
<p>and where possible trying to integrate with rustc and/or maybe have follow-up meetings to describe how things are looking and what that might mean for rustc</p>



<a name="175607981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175607981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175607981">(Sep 13 2019 at 09:37)</a>:</h4>
<p>well meetings and/or blog posts whatever</p>



<a name="175608011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608011">(Sep 13 2019 at 09:37)</a>:</h4>
<blockquote>
<p>Like, I feel we need a social/ideologial question, and not necessary a technical one: are we ready to do BIG CHANGES to make ide GO FAST?</p>
</blockquote>
<p>I do agree that ultimately what we need most of all is a sort of ... consensus around this point. I worry that talking this abstractly will not get something useful.</p>



<a name="175608081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608081">(Sep 13 2019 at 09:38)</a>:</h4>
<blockquote>
<p>and where possible trying to integrate with rustc </p>
</blockquote>
<p>I feel like finding an integration point with rustc is one specific question I'd love to know the answer to</p>



<a name="175608084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608084">(Sep 13 2019 at 09:38)</a>:</h4>
<blockquote>
<p>but keeping rustc in mind</p>
</blockquote>
<p>( my main concern here is that rustc has immediate needs too :) I think that we need to be exploring those in tandem, and I'm worried about spreading too thin. )</p>



<a name="175608111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608111">(Sep 13 2019 at 09:39)</a>:</h4>
<p>Continuing experiments feels good, but I fear that, unless it is integrated in production rustc, there's always a risk of loosing momentum and just not finishing stuff</p>



<a name="175608133"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608133" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608133">(Sep 13 2019 at 09:39)</a>:</h4>
<p>/me thinks</p>



<a name="175608194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608194">(Sep 13 2019 at 09:40)</a>:</h4>
<p>there's also the question of what integration .. means</p>



<a name="175608196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608196">(Sep 13 2019 at 09:40)</a>:</h4>
<p>e.g., chalk is integrated into rustc</p>



<a name="175608203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608203">(Sep 13 2019 at 09:40)</a>:</h4>
<p>I think if we can do "libraryfication by refactoring" that would be good</p>



<a name="175608213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608213">(Sep 13 2019 at 09:40)</a>:</h4>
<p>but there's room for improvement</p>



<a name="175608214"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608214" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608214">(Sep 13 2019 at 09:40)</a>:</h4>
<p>the overall aim being cleaner code than the messes that we sometimes have in the compiler today</p>



<a name="175608233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608233">(Sep 13 2019 at 09:41)</a>:</h4>
<p>anyway, maybe this <em>is</em> the conversation we want to be having in said meeting :)</p>



<a name="175608246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608246">(Sep 13 2019 at 09:41)</a>:</h4>
<p>I think there's a natural contradiction between "immediate goals" and "we badly need to refactor this". Can we agree on the subset of immediate goals that we do, and, more importantnly, on the subset we <em>don't</em> do, until the foundation is in the better shape?</p>



<a name="175608289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608289">(Sep 13 2019 at 09:42)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> not necessarily -- you refactored the lexer and extracted it, I did some of the same with the parser and it is more amenable to library-fication now?</p>



<a name="175608332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608332">(Sep 13 2019 at 09:42)</a>:</h4>
<p>(thus satisfying the immediate goals...?)</p>



<a name="175608350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608350">(Sep 13 2019 at 09:42)</a>:</h4>
<p>I agree it is good to refactor in place where possible</p>



<a name="175608379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608379">(Sep 13 2019 at 09:43)</a>:</h4>
<p>I was able to refactor lexer only because no one else was touching it, and I feel like I've tanked at least one "let's improve error recovering in raw string literals" PR with my effort.</p>



<a name="175608426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608426">(Sep 13 2019 at 09:43)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> ah well... folks touch the parser very often and I was able to push splitting a 8k line file apart in the bors queue nonetheless ;)</p>



<a name="175608638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608638">(Sep 13 2019 at 09:47)</a>:</h4>
<blockquote>
<p>Continuing experiments feels good, but I fear that, unless it is integrated in production rustc, there's always a risk of loosing momentum and just not finishing stuff</p>
</blockquote>
<p>I'm thinking about this <span class="user-mention" data-user-id="133169">@matklad</span></p>



<a name="175608645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608645">(Sep 13 2019 at 09:47)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  Aside: I found <a href="https://www.youtube.com/watch?v=x3evzO8O9e8" target="_blank" title="https://www.youtube.com/watch?v=x3evzO8O9e8">https://www.youtube.com/watch?v=x3evzO8O9e8</a> a most excellent watch.</p>
<div class="youtube-video message_inline_image"><a data-id="x3evzO8O9e8" href="https://www.youtube.com/watch?v=x3evzO8O9e8" target="_blank" title="https://www.youtube.com/watch?v=x3evzO8O9e8"><img src="https://i.ytimg.com/vi/x3evzO8O9e8/default.jpg"></a></div>



<a name="175608651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608651">(Sep 13 2019 at 09:47)</a>:</h4>
<p>I'm trying to make it more concrete</p>



<a name="175608702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608702">(Sep 13 2019 at 09:48)</a>:</h4>
<p>I guess this is not a <em>question</em> so much as a statement from "our" side</p>



<a name="175608725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608725">(Sep 13 2019 at 09:48)</a>:</h4>
<p>That is, the proposal is basically that we want to work more aggressively on creating libraries that are integrated into rustc, and these are a few candidates</p>



<a name="175608744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608744">(Sep 13 2019 at 09:49)</a>:</h4>
<p>I worry simultaneously that we'll get lost in technical details on those libraries or that we'll be so high-level it's meaningless, so maybe we should just see where it goes :) 50/50 nobody even shows up :P</p>



<a name="175608846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608846">(Sep 13 2019 at 09:50)</a>:</h4>
<p>But yeah it seems like a reasonably good plan for meeting to say: here are some ideas for those libraries, let's discuss some of what it might mean to try and extract from rustc in detail..? I think that chalk is actually not the most interesting bit here, since a lot of that is understood, but rather trying to go a bit more outside current rustc-chalk-integration, notably to include the lowering code and/or def'n of types.</p>



<a name="175608848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608848">(Sep 13 2019 at 09:50)</a>:</h4>
<p>so maybe I'll refocus that part of document to talk a bit about that</p>



<a name="175608850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608850">(Sep 13 2019 at 09:50)</a>:</h4>
<p>Yeah... I sort of feel that the md doc we've created covers technical side of things pretty well, so I see most value in dispersing info and maybe exciting some folks to help out :)</p>



<a name="175608856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608856">(Sep 13 2019 at 09:50)</a>:</h4>
<p>and to give rust-analyzer as an example of where we have gone a bit further, though not as far as I'd like</p>



<a name="175608874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175608874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175608874">(Sep 13 2019 at 09:51)</a>:</h4>
<p>ok, this is helpful, i'm going to try and tweak some of the content in/around chalk</p>



<a name="175609110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175609110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175609110">(Sep 13 2019 at 09:55)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> to add to the technical side of things, I think you noted that using visibility to have clear public interfaces to lotsa private details is helpful for library-ifiction. I basically agree -- that's what I was going for in e.g. typeck/lowering/parser</p>



<a name="175609112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175609112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175609112">(Sep 13 2019 at 09:55)</a>:</h4>
<p>I think we can do a lot more of that</p>



<a name="175609306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175609306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175609306">(Sep 13 2019 at 09:58)</a>:</h4>
<p>Yeah, reducing visibility is a low-hanging fruit. It doesn't help with cutting dependenies per se, but it helps with identifying dependency edges that shouldn't be there. </p>
<p>Another good mechanical thing is removing state.</p>
<p><a href="https://github.com/rust-lang/rust/blob/0a842e8c7a18ac609c3c7c60563e8e6bc7d917c6/src/libsyntax/parse/lexer/mod.rs#L45-L77" target="_blank" title="https://github.com/rust-lang/rust/blob/0a842e8c7a18ac609c3c7c60563e8e6bc7d917c6/src/libsyntax/parse/lexer/mod.rs#L45-L77">before</a></p>
<p><a href="https://github.com/rust-lang/rust/blob/f43ac065347ccbd80d0465489f51408fd907bcf7/src/libsyntax/parse/lexer/mod.rs#L32-L43" target="_blank" title="https://github.com/rust-lang/rust/blob/f43ac065347ccbd80d0465489f51408fd907bcf7/src/libsyntax/parse/lexer/mod.rs#L32-L43">after</a></p>



<a name="175609593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175609593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175609593">(Sep 13 2019 at 10:04)</a>:</h4>
<blockquote>
<p><a href="https://github.com/rust-lang/rust/blob/f43ac065347ccbd80d0465489f51408fd907bcf7/src/libsyntax/parse/lexer/mod.rs#L32-L43" target="_blank" title="https://github.com/rust-lang/rust/blob/f43ac065347ccbd80d0465489f51408fd907bcf7/src/libsyntax/parse/lexer/mod.rs#L32-L43">after</a></p>
</blockquote>
<p>Oh that's just beautiful!</p>



<a name="175610017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175610017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175610017">(Sep 13 2019 at 10:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> question about chalk-rustc integration: is <code>chalk-engine</code> behind a feature flag, or is it the actual thing that's being used for trait solving?</p>



<a name="175611507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175611507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175611507">(Sep 13 2019 at 10:38)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span>  it's a flag (<code>-Zchalk</code>)-- also, I'll be gone for ~1.5 hours or so, I'll try to wrap up the additions. I was trying to create a top section like "main questions" to try and guide overall discusison, feel free to edit if you like</p>



<a name="175618175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175618175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175618175">(Sep 13 2019 at 12:26)</a>:</h4>
<blockquote>
<p>Another good mechanical thing is removing state.</p>
</blockquote>
<p>(where "removing" may be removal from code base entirely, or may be factoring into a different struct tailored to certain purposes. I note this mainly because I was curious about where e.g. the <code>open_braces</code> field went.</p>



<a name="175620318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620318">(Sep 13 2019 at 12:53)</a>:</h4>
<p>(it occurs to me <span class="user-mention" data-user-id="133169">@matklad</span> we're looking over another obvious candidate, which is merging rustc's query system with salsa)</p>



<a name="175620376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620376">(Sep 13 2019 at 12:54)</a>:</h4>
<p>but right now the gulf there is large enough I dont' want to go there :)</p>



<a name="175620447"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620447" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620447">(Sep 13 2019 at 12:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I want to encourage that thinking :P rustc's query system feels very inscrutable to use</p>



<a name="175620466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620466">(Sep 13 2019 at 12:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> yeah! Another great example of state factoring is <a href="https://github.com/rust-lang/rust/pull/63400" target="_blank" title="https://github.com/rust-lang/rust/pull/63400">https://github.com/rust-lang/rust/pull/63400</a></p>



<a name="175620544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620544">(Sep 13 2019 at 12:56)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> might be possible to do some of that for the <code>Parser</code></p>



<a name="175620752"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175620752" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175620752">(Sep 13 2019 at 12:59)</a>:</h4>
<blockquote>
<p>(it occurs to me <span class="user-mention silent" data-user-id="133169">matklad</span> we're looking over another obvious candidate, which is merging rustc's query system with salsa)</p>
</blockquote>
<p>(I'm reminded that I have 25 messages sitting in <a href="https://salsa.zulipchat.com/" target="_blank" title="https://salsa.zulipchat.com/">the salsa zulip</a> I have yet follow up on,  dang it -- I've been spending my "free morning hours" <a href="https://github.com/rayon-rs/rfcs/pull/5" target="_blank" title="https://github.com/rayon-rs/rfcs/pull/5">on rayon</a> lately)</p>



<a name="175621166"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175621166" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175621166">(Sep 13 2019 at 13:04)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="133169">matklad</span> might be possible to do some of that for the <code>Parser</code></p>
</blockquote>
<p>In particular, I think a great improvement would be to remove ParseSess almost entirely, if we have Parser it's a bit weird to have something that persists across multiple parses</p>



<a name="175621193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175621193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175621193">(Sep 13 2019 at 13:04)</a>:</h4>
<p>and we often use it as sort of "implicit output" from parser which means locks and such</p>



<a name="175621762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175621762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175621762">(Sep 13 2019 at 13:11)</a>:</h4>
<p>pre-expansion gating is such an implicit ouput but it's probably going to be hard to ditch</p>



<a name="175621773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175621773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175621773">(Sep 13 2019 at 13:11)</a>:</h4>
<p>(and I want to add more pre-exp gating...)</p>



<a name="175622125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175622125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175622125">(Sep 13 2019 at 13:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> another huge, but mostly orthogonal thing, is the overall strategy of rls vs rls2.0</p>



<a name="175622138"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175622138" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175622138">(Sep 13 2019 at 13:15)</a>:</h4>
<p>Do we support both? Are we switching to one?</p>



<a name="175625901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175625901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175625901">(Sep 13 2019 at 13:58)</a>:</h4>
<p>Pre-expansion gating can just generate errors on a passed in handler I'd imagine?</p>



<a name="175625968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175625968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175625968">(Sep 13 2019 at 13:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> yea I suppose; -- not exactly sure why we use state for this atm</p>



<a name="175626019"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626019" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626019">(Sep 13 2019 at 13:59)</a>:</h4>
<p>oh wait... I do know why... <span class="user-mention" data-user-id="116122">@simulacrum</span> we haven't done cfg expansion during parsing</p>



<a name="175626029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626029">(Sep 13 2019 at 13:59)</a>:</h4>
<p>so it's time travel to emit those errors</p>



<a name="175626055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626055">(Sep 13 2019 at 13:59)</a>:</h4>
<p>I'm fine with time travel :)</p>



<a name="175626056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626056">(Sep 13 2019 at 13:59)</a>:</h4>
<p>there could be a <code>#![cfg_attr(feature "unstable", feature(or_patterns)]</code></p>



<a name="175626128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626128">(Sep 13 2019 at 14:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> so am I, in theory ;)</p>



<a name="175626190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626190">(Sep 13 2019 at 14:01)</a>:</h4>
<p>we'd need to do some amount of cfg-expansion before full parsing to fix it</p>



<a name="175626216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626216">(Sep 13 2019 at 14:01)</a>:</h4>
<p>which means we'd need to do some amount of parsing first</p>



<a name="175626338"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626338" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626338">(Sep 13 2019 at 14:02)</a>:</h4>
<p>Seems like expanding crate level attributes makes sense. This also interestingly intersects with why we made editions CLI flag only</p>



<a name="175626375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626375">(Sep 13 2019 at 14:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span>  right; but then you need to parse those crate level attrs first that is</p>



<a name="175626376"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626376" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626376">(Sep 13 2019 at 14:02)</a>:</h4>
<p>In theory we could do the same for features though it would be quite painful</p>



<a name="175626446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626446">(Sep 13 2019 at 14:03)</a>:</h4>
<p>Seems plausible to parse them first.</p>



<a name="175626452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626452">(Sep 13 2019 at 14:03)</a>:</h4>
<p>yea, probably not very difficult to do</p>



<a name="175626471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175626471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175626471">(Sep 13 2019 at 14:03)</a>:</h4>
<p>mainly plumbing changes</p>



<a name="175631179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/pre-design%20meeting%202019-09-13/near/175631179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/pre-design.20meeting.202019-09-13.html#175631179">(Sep 13 2019 at 14:49)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> another huge, but mostly orthogonal thing, is the overall strategy of rls vs rls2.0</p>
</blockquote>
<p>omg yes we need to make a separate meeting on this, <span class="user-mention" data-user-id="133169">@matklad</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>